$(function() {

	init();
	// 页面初始化调用方法
	function init() {
		// 1.初始化Table
		var roleTable = new TableInit();
		roleTable.Init();
		// 2.初始化Button的点击事件
		var roleButtonInit = new ButtonInit();
		roleButtonInit.Init();
	}
});
//表格初始化
var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$('#testControlSoftwareTables').bootstrapTable({
			url : '../../../LKJSoftwareVersion/getVersionList', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			toolbar : '#toolbar',
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			sortName : "TIME",
			sortOrder : "DESC",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height: 500,// 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "VERSION_ID", // 每一行的唯一标识，一般为主键列
			showToggle : true, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect : true,
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	            });
	        },
			responseHandler : function(res) {
				return getTableData(res);
			}, // 是否显示父子表
			columns : [ {
				checkbox : true
			}, {
				field : 'VERSION_ID',
				visible : false
			}, {
				field : 'VERSION_NAME',
				title : '测试控制软件名称',
				sortable : true,// 是否可排序
				order : "DESC",// 默认排序方式
				formatter : onceHtml
			}, {
				field : 'VERSION_TIME',
				title : '编译时间',
			}, {
				field : 'FILE_SIZE',
				title : '文件大小(kb)'
			}, {
				field : 'TIME',
				title : '上传时间'
			}, {
				field : 'UPLOAD_USER',
				title : '上传人'
			},{
				field : 'VERSION_NUMBER',
				title : '版本号'
			}, {
				field : 'VERSION_DETAIL',
				title : '软件说明',
				width: 200,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
				}
			} ]
		});
	};
	function onceHtml(value, row, index) {
		return "<a id='" + row.VERSION_ID
				+ "' href='#' onclick='details(this)'>" + row.VERSION_NAME
				+ "</a>";
	}
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			// pageNumber, searchText, sortName, sortOrder
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : "VERSION_NAME",
			sortOrder : params.sortOrder,
			versionType : "3",
			versionName : $("#versionNameSearch").val(),
			versionNumber : $("#versionNumberSearch").val()
		};
		return temp;
	};
	return oTableInit;
};
// 弹出新增页面
function add() {
	BootstrapDialog
			.show({
				title : '新增测试控制软件版本',
				message : $(
						"<form id='myform' class='form-inline' style='height:250px'></form>")
						.load('addTestControlSoftware.html'),
				buttons : [
						{
							icon : 'glyphicon glyphicon-check',
							label : '确定',
							cssClass : 'btn-primary',
							autospin : true,
							action : function(dialogRef) {
								var packageText = $("#upload_file").val();
								if (packageText.trim() == ""|| packageText == null) {
									var content = "测试控制软件软件包不能为空!!!!!";
									warning(content);
									return;
								}
								//1兆字节(mb)=1048576字节(b)
								var file = document.getElementById("upload_file").files;
								var fileSize = file[0].size;
								if(fileSize/1048576 >60){
									warning("上传文件不能大于60M！");
									return;
								}
								//上传文件的编辑时间
								var editTime = onFormaTime(file[0].lastModified);
								$('#versionTime').val(editTime);
								var formData = new FormData(document
										.getElementById("myform"));// 表单id
								if($('#versionNumber').val() == ""){
									warning("版本号不能为空！");
									return;
								}
								
								if($("#versionDetail").val() == ""){
									warning("软件说明不能为空！");
									return;
								}
								if($("#versionDetail").val().length>=100){
									warning("软件说明过长！");
									return;
								}
								if (packageText.trim() == ""
										|| packageText == null) {
									var content = "测试控制软件软件包不能为空!!!!";
									warning(content);
								} else {
									$.ajax({
												url : '../../../LKJSoftwareVersion/addOtherVersion',
												type : 'POST',
												data : formData,
												async : false,
												cache : false,
												contentType : false,
												processData : false,
												success : function(result) {
													if (result.flag == 0) {
														var content = "新增成功!!!";
														success(content);
														queryBytableId('testControlSoftwareTables');
													} else {
														var content = result.errorInfo;
														warning(content);
													}
												}
											});
								}
							}
						}, {
							label : '取消',
							action : function(dialogRef) {
								dialogRef.close();
							}
						} ]
			});
}
// 弹出编辑页面
function edit() {
	var selectVersion = $("#testControlSoftwareTables").bootstrapTable(
			'getSelections');
	if (selectVersion.length == 0) {
		var content = "请选择要编辑的LKJ软件版本!";
		info(content);
	} else {
		var versionDetail = selectVersion[0].VERSION_DETAIL;
		var versionId = selectVersion[0].VERSION_ID;
		BootstrapDialog
				.show({
					title : '编辑测试控制软件版本',
					message : $(
							"<form id='myform' class='form-inline' style='height:150px'></form>")
							.load('addVersion.html'),
					onshown : function() {
						$("#versionDetail").val(versionDetail);
					},
					buttons : [
							{
								icon : 'glyphicon glyphicon-check',
								label : '确定',
								cssClass : 'btn-primary',
								autospin : true,
								action : function(dialogRef) {
									if($("#versionDetail").val() == ""){
										warning("软件说明不能为空！");
										return;
									}
									if($("#versionDetail").val().length>=100){
										warning("软件说明过长！");
										return;
									}
									versionFile(versionId,$("#versionDetail").val());
								}
							}, {
								label : '取消',
								action : function(dialogRef) {
									dialogRef.close();
								}
							} ]
				});
	}
}
//发送编辑请求
function versionFile(versionId,versionDetail){
	$.ajax({
		url : '../../../LKJSoftwareVersion/editVersion',
		type : 'POST',
		data : {versionId:versionId,versionDetail:versionDetail},
		dataType:'json',
		success : function(result) {
			if (result.flag == 0) {
				var content = "修改成功!!!";
				success(content);
				queryBytableId('testControlSoftwareTables');
			} else {
				var content = result.errorInfo;
				warning(content);
			}
		},
		error : function() {
			var content = "修改失败";
			warning(content);
		}
	});
}
// 删除测试控制软件版本操作
function deleteVersion() {
	var selectVersion = $("#testControlSoftwareTables").bootstrapTable(
			'getSelections');
	if (selectVersion.length == 0) {
		var content = "请选择要删除的测试控制软件版本!";
		info(content);
	} else {
		var versionId = selectVersion[0].VERSION_ID;
		BootstrapDialog.show({
			title : '提示',
			message : "您确定要删除吗?",
			buttons : [ {
				icon : 'glyphicon glyphicon-check',
				label : '确定',
				cssClass : 'btn-primary',
				autospin : true,
				action : function(dialogRef) {
					dialogRef.close();
					deleteVersionID(versionId);
				}
			}, {
				label : '取消',
				action : function(dialogRef) {
					dialogRef.close();
				}
			} ]
		});
	}
}
// 删除具体ajax操作
function deleteVersionID(versionId) {
	$.ajax({
		url : "../../../LKJSoftwareVersion/deleteVersion",
		type : "post",
		data : {
			"versionId" : versionId
		},
		dataType : "json",
		success : function(data) {
			if (data.flag == 0) {
				var content = "测试控制软件版本删除成功!";
				success(content);
				queryBytableId('testControlSoftwareTables');
			} else {
				var content = "测试控制软件版本删除失败!";
				danger(content);
			}
		},
		error : function() {
			var content = "测试控制软件版本删除失败!";
			danger(content);
		}
	});
}

function details(t) {
	var versionId = t.id;
	var params = "versionId=" + versionId;
	window.location.href = "../../../LKJSoftwareVersion/downloadVersion.action?"
			+ params;
}
var ButtonInit = function() {
	var oInit = new Object();
	// var postdata = {};

	oInit.Init = function() {
		// 初始化页面上面的按钮事件
	};

	return oInit;
};
function onFormaTime(time){
	var date = new Date(time);
	var y = date.getFullYear();
	var M = date.getMonth() + 1;
	var d = date.getDate();
	var h = date.getHours();
	var m = date.getMinutes();
	var s = date.getSeconds();
	var html = "";
	html += y + "-";
	if (M < 10) {
		html += "0";
	}
	html += M + "-";
	if (d < 10) {
		html += "0";
	}
	html += d + " ";
	if (h < 10) {
		html += "0";
	}
	html += h + ":";
	if (m < 10) {
		html += "0";
	}
	html += m + ":";
	if (s < 10) {
		html += "0";
	}
	html += s;
	return html;
}

function onVersion()
{
	var reg = /^\d+\.\d+\.\d+\.\d+$/;
	var bool = reg.test($('#versionNumber').val());
	if(!bool){
    	danger("请输入正确的版本号格式(如1.0.0.1)");
		$('#versionNumber').val("");
	}
}
function onKeyUpFun(event,count){
	if(event.value.length>count){
		warning('输入不能超过'+count+"个字符");
	}
}